package com.situ.mall.web.service;

import com.mall.common.util.JsonResult;
import com.situ.cart.spi.model.CartItem;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 购物车服务 Feign 客户端
 */
@FeignClient(name = "cart-api", path = "/api/cartItems", contextId = "cart-api")
public interface CartFeignService {

    /**
     * 根据用户ID查询购物车项列表
     */
    @GetMapping
    ResponseEntity<JsonResult<?>> findAll(@RequestParam("memberId") Integer memberId);

    /**
     * 根据购物车项ID查询单个购物车项
     */
    @GetMapping("/id/{id}")
    ResponseEntity<JsonResult<?>> findById(@PathVariable("id") Integer id);

    /**
     * 保存购物车项
     */
    @PostMapping
    ResponseEntity<JsonResult<?>> save(@RequestBody CartItem item);

    /**
     * 更新购物车项
     */
    @PutMapping
    ResponseEntity<JsonResult<?>> update(@RequestBody CartItem item);

    /**
     * 批量删除购物车项
     */
    @DeleteMapping
    ResponseEntity<JsonResult<?>> deleteByIds(@RequestBody Integer[] ids);

    /**
     * 根据商品ID查询购物车项ID列表
     */
    @GetMapping("/productId/{id}")
    ResponseEntity<JsonResult<?>> findIdsByProductId(@PathVariable("id") Integer id);
} 